# --- Commands Help ---
# set=set-option
# setw=set-window-option
# bind=bind-key
#
# bind [-T key-table] : 绑定到特定的表，默认是前缀(prefix)
# bind [-n] = bind -T root : 绑定到无前缀表
# bind [-r] : 可重复
#
# S- shift C- ctrl M- alt

# 开启多彩支持
#set -g default-terminal "tmux-256color"

# 开启鼠标支持
# 代替了旧设置(mode-mouse, mouse-XXX)
set -g mouse on

# 开启UTF-8支持
# deprecated
#setw -g utf8 on

# 修改指令前缀
# set -g prefix C-a
# unbind C-b
# bind C-a send-prefix

# 设置shell
# ---------

# --- TPM 插件管理 BEGIN ---

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# --- window/pane ---

# window起始下标
set -g base-index 0
# pane起始下标
set -g pane-base-index 0

# 命令历史
set -g history-limit 1000

# 切换 window: Shift+←/→
bind -n S-Left previous-window
bind -n S-Right next-window

# 横切从 " 改为 -，竖切从 % 改为 |
# 新pane初始到当前目录
unbind '"'
bind - split-window -v -c '#{pane_current_path}'
unbind %
bind | split-window -h -c '#{pane_current_path}'

# 选择 pane: kjhl
bind -r k select-pane -U # k=↑
bind -r j select-pane -D # j=↓
bind -r h select-pane -L # h=←
bind -r l select-pane -R # l=→

# 交换 pane: < >
bind < swap-pane -U
bind > swap-pane -D

# --- 按键绑定 ---
# 快速更新配置
#bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf sourced"

# --- 状态栏 ---

# 前景背景色
set -g status-bg black
set -g status-fg white

# 刷新时间
set -g status-interval 1
# 对齐方式
set -g status-justify left

# 非当前窗口内容更新时在状态栏通知
setw -g monitor-activity on
set -g visual-activity off

# 关闭 window 自动重命名
setw -g automatic-rename off
# 允许 window 重命名
setw -g allow-rename on

# window 状态格式
setw -g window-status-format '#[dim]#I:#[default]#W#[fg=grey,dim]'
setw -g window-status-current-format '#[fg=cyan,bold]#I#[fg=blue]:#[fg=cyan]#W#[fg=dim]'

# 左侧配置
set -g status-left '#[bg=black,fg=green][#[fg=cyan]#S#[fg=green]]'
set -g status-left-length 300

# 右侧配置
set -g status-right '#[fg=green][#[fg=cyan]%Y-%m-%d#[fg=green]]'
set -g status-right-length 500

# --- TPM 插件管理 END ---

run '~/.tmux/plugins/tpm/tpm'

# --- 自定义配置 ---

if '[[ -f ~/.tmux/local.conf ]]' 'source ~/.tmux/local.conf'
